Global Acceleratorを利用してDNSレコードのTTL設定を延長してみた
AWSチームのすずきです。
2019/10/22 日本時間の午前中、Route53に対するDDoS攻撃が発生、 その緩和処置の副作用が一部のISPに波及した事で、DNSを利用したAWSリソースの名前解決が局所的に不安定となる事象が発生しました。
Route53で発生した問題についてはAWS側で対策が取られるとされていますが、 利用者側で可能な対策として DNSレコードのTTLの延長をAWS Global Accelerator の固定IPを用いて設定する機会がありましたので、紹介させていただきます。
構成
設定
Global Accelerator
Global Accelerator は 以下で設定済みのものを利用しました。
Route53
名前解決設定をエイリアス指定から、以下に変更しました。
- タイプ: Aレコード (A - IPv4 アドレス)
- TTL: 10800秒 (3時間)
- 値: Global Accelerator の固定IPアドレス
確認
変更前
Global Accelerator を Route53のエイリアスとして設定中のTTLは 5分でした。
;; ANSWER SECTION: dev.classmethod.jp. 299 IN A 13.248.154.248 dev.classmethod.jp. 299 IN A 76.223.19.169
変更後
Route53の Aレコードとして登録した 長いTTL(3時間)設定が確認できました。
;; ANSWER SECTION: dev.classmethod.jp. 10800 IN A 76.223.19.169 dev.classmethod.jp. 10800 IN A 13.248.154.248
まとめ
ALBの名前解決は、Route53のエイリアス、またはCNAMEでの設定が必要ですが、 Global Accelerator を利用する事で、固定IPを Aレコード として設定可能です。
DNSレコードのTTL値を延長する事により、DNSキャッシュが機能する範囲となりますが、一時的な名前解決の問題の回避が期待できます。
東京リージョンのELBで稼働する国内向けサービスでGlobal Accelerator を利用すると、1時間あたり0.025 USDの費用と、1GBあたり0.01 USD(日本国内) プレミアムデータ課金。 Route53の名前解決をエイリアスでなくAレコードで指定すると、100 万件のクエリごとに 0.400 USD (標準クエリ)の課金が発生します。
ALBを利用するシステムでこれらの費用が許容出来る場合には、Global Accelerator の固定IPを利用した Aレコード設定をお試しください。
尚、長過ぎるTTL設定はDNSの名前解決設定を変更する際、問題となる可能性もありますのでご注意ください。